All computer systems require user input to perform dedicated functions. In some cases the only input needed is a signal to commence processing according to a preprogrammed list of instructions, typically called a program.
There are dedicated computer systems for receiving special signals, and for automatically processing the signals to some purpose, and storing or displaying a result. An example would be a computerized environmental monitoring station. More commonly, however, computer systems need periodic, and often frequent, alphanumeric and geometric input. This need for frequent alphanumeric and geometric input is typical of what are often termed "general-purpose" computers in the art, which include personal computers of all types, such as desk-top and portable computers.
Typically general-purpose computers have keyboards for alphanumeric input and pointing devices, such as a "mouse" or a trackball for geometric input. Alphanumeric input is useful for such as word processing applications, and geometric input for such as graphic applications. General-purpose computer systems, as a result, almost invariably have keyboards, simulating typewriter keyboards, as an interface for user input.
Keyboards for computers are demanding projects for electromechanical designers, and are arguably the most used and abused part of a computer system. The keyboard, moreover, is a relatively intricate mechanical system, typically requiring a number of moving and interacting parts, and the parts must be capable of being exercised many thousands of times without failure.
Keyboards, too are subject to a constant rain of foreign matter, none of which is usually beneficial to operation. Dust, dirt, moisture, spilled liquids, skin and fingernail material, and more, are common intruders to a keyboard. A good keyboard design has to protect the working elements form intrusion of foreign matter.
Another demanding aspect of keyboard design is the matter of assembling the keystroke data and transmitting the data to the computer or computerized system served. There are a number of different ways keys may be implemented and keystrokes may be detected and converted to data at the host system. Typically the key switches are arranged in a matrix and the rows of the matrix are scanned. This is the multiplexed interface. This can be done in a software-based mode using the host system's CPU, but there are a number of advantages to having an on-board microprocessor at the keyboard.
Typically, for a keyboard with an on-board microprocessor, keystroke data is fed to the microprocessor to be processed, coded, and transmitted. The most common transmission mode is over a serial connecting cable to the hose system. When the host computer receives a scan code, the keyboard controller notifies the CPU that a scan code is available to be read.
A good reference on keyboard technology is Microprocessor Based Design, by Michael Slater, pages 287-303, Copyright 1989 by Prentice Hall. Another is The Winn Rosch Hardware Bible by Winn Rosch, pages 239-257, Copyright 1989 by Winn L. Rosch, and published by Prentice Hall. These sections of the two references are incorporated herein by reference.
The coupling of the keyboard to the host computer by a cable is often restrictive and clumsy. When desk space is limited, for example, space for the cable may be a problem. The length of the cable restricts the position of the keyboard relative to the computer as well. And the cable is another component subject to failure, such as by poor connection at either of two end connectors. There have been attempts prior to the present invention to couple a keyboard to a computer without a cord. For example, IBM introduced the PC Jr. computer with two infra-red emitting LEDs to send out scan codes optically. The system was not very reliable however, and was limited to line-of-sight transmission.
What is needed is an apparatus and method allowing a keyboard to communicate with the host without the necessity of a cable in a manner that is reliable, and not restricted to line-of-sight transmission.